package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.VehicleSpecialInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护特种车辆信息的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboVehicleSpecialInfoService {

	/**
	 * 返回所有特种车辆信息
	 * @return ResultPojo 所有特种车辆信息
	 */
	public ResultPojo getVehicleSpecialInfo();
	/**
	 * 分页返回所有特种车辆信息
	 * @param page 分页对象
	 * @return ResultPojo 包含特种车辆信息的分页对象
	 */
	public ResultPojo getPageVehicleSpecialInfo(Page page);
	/**
	 * 分页返回所有特种车辆信息
	 * @param orderSeq 
	 * @param ownOrgan 
	 * @param vehPlate 
	 * @param vehTypeCode 
	 * @param page 分页对象
	 * @return ResultPojo 包含特种车辆信息的分页对象
	 */
	public ResultPojo getPageVehicleSpecialInfo(String vehTypeCode, String vehPlate, String ownOrgan, String orderSeq, Page page);
	
	/**
	 * 分页返回指定条件的特种车辆信息
	 * @param vehType 车辆类型
	 * @param vehPlate 号牌号码
	 * @param ownOrgan 所属企业
	 * @param page 分页对象
	 * @return ResultPojo 包含特种车辆信息的分页对象
	 */
	public ResultPojo getPageVehicleSpecialInfo(String vehType, String vehPlate, String ownOrgan, Page page);
	
	/**
	 * 返回与车辆类型和号牌号码相匹配的特种车辆信息
	 * @param vehType 车辆类型
	 * @param vehPlate 号牌号码
	 * @return ResultPojo 特种车辆信息
	 */
	public ResultPojo getVehicleSpecialInfoById(String vehType, String vehPlate);
	
	/**
	 * 返回与所属机构相匹配的特种车辆信息
	 * @param ownOrgan 所属机构
	 * @return ResultPojo 特种车辆信息
	 */
	public ResultPojo getVehicleSpecialInfoByOrgan(String ownOrgan);
	
	/**
	 * 添加一条特种车辆信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param vehicleSpecialInfoDto 特种车辆信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addVehicleSpecialInfo(String token, VehicleSpecialInfoDto vehicleSpecialInfoDto);
	
	/**
	 * 修改一条特种车辆信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param vehicleSpecialInfoDto 特种车辆信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editVehicleSpecialInfo(String token, VehicleSpecialInfoDto vehicleSpecialInfoDto);
	
	/**
	 * 删除指定车辆类型和号牌号码的特种车辆信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param vehType 车辆类型
	 * @param vehPlate 号牌号码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeVehicleSpecialInfo(String token, String vehType, String vehPlate);
	
	/**
	 * 分页返回指定条件的特种车辆信息
	 * @param vehType 车辆类型
	 * @param vehPlate 号牌号码
	 * @param ownOrgan 所属企业
	 * @param orderSeq 
	 * @param
	 * @return ResultPojo 包含特种车辆信息的分页对象
	 */
	public ResultPojo getVideoAnalyzerInfo(String vehTypeCode, String vehPlate, String ownOrgan, String orderSeq);
}
